package com.fishery.base.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fishery.base.entity.BaseSupply;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fishery.base.entity.SupplyOut;
import com.fishery.base.entity.vo.BaseSupplyAmountVo;
import com.fishery.base.entity.vo.BaseSupplyNameVo;

import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 基地投入品服务类
 * </p>
 *
 * @author Ghost
 * @since 2021-01-21
 */
public interface BaseSupplyService extends IService<BaseSupply> {

	/**
	 * 通过基地ID获取基地投入品的所有类型
	 *
	 * @param baseId
	 * @return
	 */
	List<Integer> getAllType(String baseId);

	/**
	 * 通过基地ID和type获取基地某种投入品的所有名字
	 *
	 * @param baseId
	 * @param type
	 * @param size
	 * @param current
	 * @return
	 */
	Page<BaseSupplyNameVo> pageAllSupplyByTypeAndBaseId(String baseId, int type, int size, int current);

	/**
	 * 增加基地投入品仓库的某种投入品的库存量
	 *
	 * @param baseId
	 * @param supplyId
	 * @param delt
	 */
	void addBaseSupplyWeight(String baseId, String supplyId, BigDecimal delt);

	/**
	 * 减少基地某种投入品的库存量
	 *
	 * @param baseId
	 * @param supplyId
	 * @param inWeight
	 */
	void decreaseBaseSupply(String baseId, String supplyId, BigDecimal inWeight);

	/**
	 * 分页获取基地投入品信息
	 *
	 * @param baseId
	 * @param size
	 * @param current
	 * @return
	 */
	Page<BaseSupply> pageBaseSuppy(String baseId, int size, int current);

	/**
	 * 通过基地ID查询投入品库存量、使用量、剩余量信息
	 *
	 * @param baseId
	 * @return
	 */
	List<BaseSupplyAmountVo> getAmountInfoOfBaseSupply(String baseId);

	/**
	 * 通过基地ID查询基地所有的投入品
	 *
	 * @param baseId
	 * @return
	 */
	List<BaseSupply> listBaseSuppies(String baseId);
}
